﻿/**
 *		key为string的hashtable
 *@author	吴建凰
 *@date		2015年3月29日 
 */
#pragma once
#include <hash/ossHashTable.h>
#include <hash/ossIntHashNode.h>

class OssIntHashKey :public OssIntHashNode
{
public:
	OssIntHashKey (long iKey);
	virtual ~OssIntHashKey (void);

    /**
     *      设置当前的key
     *@notes        key修改后其hash位置会随着修改，所以使用时请注意。
     */
    void SetKey(long iKey);
	long GetKey();

private:
    long m_iKey;
};


class OssPointHashKey :public OssHashKey
{
public:
    OssPointHashKey(void* pointerKey);
    virtual ~OssPointHashKey(void);

    /**
     *      设置当前的key
     *@notes        key修改后其hash位置会随着修改，所以使用时请注意。
     */
    void SetKey(void* pointerKey);
    void* GetKey();

    /**
     *		生成hash值
     */
    virtual DWord HashVal();

    /**
     *		比较键值是否一样
     */
    virtual Bool CompareKey(OssHashKey* obj);
private:
    void* m_pointKey;
};
